---
title: Latest premium history set id
summary: Returns the current premium-history set id for a policy period.
status: draft
owner: SAIF Documentation Generator
last_reviewed: 2026-08-21
library: SAIF.Business.Policy
reference_type: package
operation_id: op-08-max-prem-hist-set-id
trigger: Caller invokes MaxPremiumHistorySetId
---

# Latest premium history set id

Returns the current (highest) premium-history set id for a policy period.

| Field | Value |
| --- | --- |
| **Operation ID** | op-08-max-prem-hist-set-id |
| **Trigger** | Caller invokes `MaxPremiumHistorySetId` |
| **Inputs** | `IDataPortalInfo`, policy number, period effective date |
| **Outputs** | `Decimal` |
| **Primary components** | `PolicyInformation.MaxPremiumHistorySetId` |
| **Entry point** | SAIF.Business.Policy/PolicyInformation.vb |

## Steps

1. `inDPI.NewPortalRequest()` → scalar text request with inline SQL ([SQL-007](../sql/SQL-007-max-prem-hist-set-id.md)): `MAX(prem_hist_set_id)` from [PREM_HIST_SUMMARY](../database-tables.md#prem_hist_summary) filtered to `prem_hist_type_code IN ('1','3')` ([BR-POL-007](../business-rules.md#br-pol-007-current-premium-history-set-selection)).
2. Bind `PolicyNumber`, `PolicyPeriodEffectiveDate`.
3. `DPI.ProcessPortalRequest`; if the result is not `DBNull` return `CDec(...)`, else return `0` ([BR-POL-007](../business-rules.md#br-pol-007-current-premium-history-set-selection)).

## Process flow

The following diagram visualizes this operation's control flow.

```mermaid
flowchart TD
	Start(["Caller invokes<br>MaxPremiumHistorySetId"]) --> Request["NewPortalRequest — scalar<br>text request with inline SQL"]
	Request --> Bind["Bind PolicyNumber,<br>PolicyPeriodEffectiveDate"]
	Bind --> Process["ProcessPortalRequest"]
	Process --> Check{Result is DBNull?}
	Check -->|No| ReturnDec(["Return CDec(Result)"])
	Check -->|Yes| ReturnZero(["Return 0"])
```

## Failure and edge-case behavior
- A `NULL` result is normalized to `0` via an explicit `IsDBNull` guard rather than throwing.

## Related documentation
- [Operations and processes](../operations-processes.md)
- [Business rules](../business-rules.md)
- [SQL catalog](../sql/index.md)
- [Database tables](../database-tables.md)

## Sources
- `SAIF.Business.Policy/PolicyInformation.vb`
